Turbo codes are a class of forward error correction (FEC) codes that closely approach the channel capacity (a theoretical maximum for a code rate of a communications channel at which reliable communications is possible given a specific noise level) of a communications channel. Turbo decoders are decoders of turbo codes. Generally, a turbo decoder comprises two component Soft-in Soft-out (SISO) decoders. The SISO decoder may implement a Maximum A posteriori Probability (MAP) algorithm or a soft-output Viterbi algorithm (SOVA) to decode encoded signals.
Algorithms implemented in SISO decoders, such as MAP algorithms, SOVA, and the like, tend to be computationally intensive; therefore, many techniques have been devised to improve decoding performance. One commonly used technique for improving decoding performance is to use parallel SISO decoding, wherein multiple SISO decoders are used and data parallelism is exploited to improve decoding performance.